<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>面试题 17.19. 消失的两个数字</title>
  </head>
  <body>
    <script>
      //     给定一个数组，包含从 1 到 N 所有的整数，但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗？

      // 以任意顺序返回这两个数字均可。

      // 示例 1:

      // 输入: [1]
      // 输出: [2,3]
      // 示例 2:

      // 输入: [2,3]
      // 输出: [1,4]
      // 提示：

      // nums.length <= 30000

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode.cn/problems/missing-two-lcci
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
      /**
       * @param {number[]} nums
       * @return {number[]}
       */
      var missingTwo = function (nums) {
        nums.sort((a, b) => a - b)
        const res = []
        let offset = 0 // 索引向左方向的偏移量
        for (let i = 1, len = nums.length + 2; i <= len; i++) {
          if (res.length === 2) break
          if (i !== nums[i - 1 - offset]) {
            res.push(i)
            offset++
          }
        }
        return res
      }
      console.log(missingTwo([2, 3]))
    </script>
  </body>
</html>
